package com.terrace.db.system.service;

import com.terrace.core.mybatis.entity.Pagination;

import java.util.List;

import com.terrace.db.system.mapper.entity.Role;
import com.terrace.db.system.mapper.entity.UserRole;

public interface RoleService {
	
	/**
	 * 保存角色
	 * @param role
	 * @return
	 */
	public int saveRoleSelective(Role role);
	
	/**
	 * 删除角色
	 * @param id
	 * @return
	 */
	public int deleteRoleById(String roleId);
	
	/**
	 * 根据用户和角色id删除用户角色关联信息
	 * @param userId
	 * @param roleId
	 * @return
	 */
	public int deleteByUserAndRoleId(String userId, String roleId);
	
	/**
	 * 修改角色通过ID
	 * @param role
	 * @return
	 */
	public int updateByRoleIdSelective(Role role);
	
	/**
	 * 通过ID获取角色
	 * @param roleId
	 * @return
	 */
	public Role selectByRoleId(String roleId);
	
	/**
	 * 角色授予用户
	 * @param userRole
	 * @return
	 */
	public int roleGrantUser(UserRole userRole);
	
	/**
	 * 根据用户id获取角色
	 * @param userId
	 * @return
	 */
	public List<Role> selectRoleByUserId(String userId);
	
	/**
	 * 分页查询角色列表
	 * @param role
	 * @param pagination
	 * @return
	 */
	public Pagination<Role> selectRolesBySelective(Role role, Pagination<Role> pagination);

}
